home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 11 / FM Towns Free Software Collection 11.iso / t_os / joke / inc_wp / src / inc_wp_s.bas next >
Encoding:
BASIC Source File  |  1995-08-12  |  2.8 KB  |  93 lines

  1. 1000 ' SAVE "INC_WP_S.BAS",A:SAVE "INC_WP_S.BAK",A
  2. 1010 ' 手書きワープロ(オープニング無しversion)
  3. 1020 ' 1995.8.12(Sat)
  4. 1030 ' (C) by Kota2 of BigCabin 
  5. 1040 ' === Main routine ===
  6. 1050 GOSUB *ALL_INITIALIZE
  7. 1060 WHILE MAIN_LOOP=0
  8. 1070     GOSUB *RESTART
  9. 1080     GOSUB *MOJI
  10. 1090     GOSUB *LOOP_CHECK
  11. 1100     IF MAIN_LOOP=0 THEN GOSUB *LITTLE
  12. 1110 WEND
  13. 1120 GOSUB *END
  14. 1130 END
  15. 1140 ' --- 全初期化 ---
  16. 1150 *ALL_INITIALIZE
  17. 1160     X_MAX=640
  18. 1170     Y_MAX=480
  19. 1180     DOT=20:' 変換後の文字の大きさ(ここをかえると・・・)
  20. 1190     SCREEN@ 0
  21. 1200     CLS
  22. 1210     FOR I=DOT+4 TO Y_MAX/2-1 STEP DOT+4
  23. 1220         LINE (10,I)-(X_MAX-10,I),PSET
  24. 1230     NEXT I
  25. 1240     MOUSE 0
  26. 1250     MOUSE 1,,,1
  27. 1260     MOUSE 4,0,Y_MAX/2,X_MAX-1,Y_MAX-1
  28. 1270 RETURN
  29. 1280 ' --- 2次初期化 ---
  30. 1290 *RESTART
  31. 1300     UP   = 999
  32. 1310     DOWN =-999
  33. 1320     LEFT = 999
  34. 1330     RIGHT=-999
  35. 1340     LINE (0,Y_MAX/2)-(X_MAX,Y_MAX),PSET,0,BF
  36. 1350 RETURN
  37. 1360 ' --- 文字書き ---
  38. 1370 *MOJI
  39. 1380     MOJI=0
  40. 1390     WHILE MOJI=0
  41. 1400         MOUSE_X=MOUSE(0)
  42. 1410         MOUSE_Y=MOUSE(1)
  43. 1420         ' PRINT MOUSE_X,MOUSE_Y
  44. 1430         IF MOUSE(2,0) THEN GOSUB *LIMIT:                                                LINE(MOUSE_X,MOUSE_Y)-(MOUSE_XX,MOUSE_YY),PSET 
  45. 1440         IF MOUSE(2,1) THEN MOJI=-1
  46. 1450         MOUSE_XX=MOUSE_X
  47. 1460         MOUSE_YY=MOUSE_Y
  48. 1470     WEND
  49. 1480 RETURN
  50. 1490 ' --- 縮小 ---
  51. 1500 *LITTLE
  52. 1510     ' PRINT UP,DOWN,LEFT,RIGHT
  53. 1520     ' LINE (LEFT-1,UP-1)-(RIGHT+1,DOWN+1),PSET,,B
  54. 1530     HI=(RIGHT-LEFT)/(DOWN-UP):' 縦に対する横の比
  55. 1540     RITU=(DOWN-UP)/DOT       :' 16ドットに対する倍率  
  56. 1550     IF X_MAX-LINE_X-10<DOT*HI THEN LINE_X=0:LINE_Y=LINE_Y+DOT+4
  57. 1560     FOR Y=0 TO DOT
  58. 1570         FOR X=0 TO DOT*HI
  59. 1580             ' PSET(X,Y),3
  60. 1590             ' PSET(X*RITU+LEFT,Y*RITU+UP),5
  61. 1600             GOSUB *TEN
  62. 1610             IF TEN<>0 THEN PSET(X+10+LINE_X,Y+2+LINE_Y)
  63. 1620         NEXT X
  64. 1630     NEXT Y
  65. 1640     LINE_X=LINE_X+DOT*HI+2
  66. 1650 RETURN
  67. 1660 ' --- 終了 ---
  68. 1670 *END
  69. 1680 MOUSE 5
  70. 1690 END
  71. 1700 ' --- 範囲更新 ---
  72. 1710 *LIMIT
  73. 1720     IF UP   >MOUSE_Y THEN UP   =MOUSE_Y
  74. 1730     IF DOWN <MOUSE_Y THEN DOWN =MOUSE_Y
  75. 1740     IF LEFT >MOUSE_X THEN LEFT =MOUSE_X
  76. 1750     IF RIGHT<MOUSE_X THEN RIGHT=MOUSE_X
  77. 1760 RETURN
  78. 1770 ' --- 点を打つかどうかの処理 ---
  79. 1780 *TEN
  80. 1790     TEN=0
  81. 1800     TEN_X=X*RITU+LEFT
  82. 1810     TEN_Y=Y*RITU+UP
  83. 1820     FOR TY=TEN_Y-RITU/2 TO TEN_Y+RITU/2
  84. 1830         FOR TX=TEN_X-RITU/2 TO TEN_X+RITU/2
  85. 1840             IF POINT(TX,TY)=-1 THEN TEN=TEN+1 
  86. 1850         NEXT TX
  87. 1860     NEXT TY
  88. 1870 RETURN
  89. 1880 ' --- メインループ終了の判定 ---
  90. 1890 *LOOP_CHECK
  91. 1900     IF UP=999 AND DOWN=-999 AND LEFT=999 AND RIGHT =-999 THEN                       MAIN_LOOP=-1
  92. 1910 RETURN
  93.